package org.jvdb;

import java.io.InputStream;
import java.io.Reader;
import java.math.BigDecimal;
import java.net.URL;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Date;
import java.sql.Ref;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;

/**
 * Created by IntelliJ IDEA.
 * User: romain.gilles
 * Date: 2/16/11
 * Time: 11:47 PM
 * To change this template use File | Settings | File Templates.
 */
public interface IPreparedStatementTimer extends Timer {
    void setNull(int parameterIndex, int sqlType);

    void setBoolean(int parameterIndex, boolean x);

    void setByte(int parameterIndex, byte x);

    void setShort(int parameterIndex, short x);

    void setInt(int parameterIndex, int x);

    void setLong(int parameterIndex, long x);

    void setFloat(int parameterIndex, float x);

    void setDouble(int parameterIndex, double x);

    void setBigDecimal(int parameterIndex, BigDecimal x);

    void setString(int parameterIndex, String x);

    void setBytes(int parameterIndex, byte[] x);

    void setDate(int parameterIndex, Date x);

    void setTime(int parameterIndex, Time x);

    void setTimestamp(int parameterIndex, Timestamp x);

    void setAsciiStream(int parameterIndex, InputStream x, int length);

    void setUnicodeStream(int parameterIndex, InputStream x, int length);

    void setBinaryStream(int parameterIndex, InputStream x, int length);

    void setObject(int parameterIndex, Object x, int targetSqlType,
                   int scale);

    void setObject(int parameterIndex, Object x, int targetSqlType);

    void setObject(int parameterIndex, Object x);

    void setCharacterStream(int parameterIndex, Reader reader, int length);

    void setRef(int i, Ref x);

    void setBlob(int i, Blob x);

    void setClob(int i, Clob x);

    void setArray(int i, Array x);

    void setDate(int parameterIndex, Date x, Calendar cal);

    void setTime(int parameterIndex, Time x, Calendar cal);

    void setTimestamp(int parameterIndex, Timestamp x, Calendar cal);

    void setNull(int paramIndex, int sqlType, String typeName);

    void setURL(int parameterIndex, URL x);

    void addBatch();
}
